package cn.lili.modules.member.service;

import cn.lili.common.vo.PageVO;
import cn.lili.modules.aop.annotation.RedPackLogPoint;
import cn.lili.modules.member.entity.dos.RedPackUser;
import cn.lili.modules.payment.entity.dto.UserRedPackUpdateDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.text.ParseException;
import java.util.List;

public interface RedPackUserService extends IService<RedPackUser> {

    /**
     * 根据用户id获取用户红包数量
     * @param userId
     * @return
     */
    RedPackUser getRedPackUser (String userId);

    /**
     * 用户红包变动记录
     * @param userRedPackUpdateDTO
     */
    void updateMemberRedPack(UserRedPackUpdateDTO userRedPackUpdateDTO);

    /**
     * 获取用户和用户红包数据
     * @param sessionId
     * @return
     * @throws ParseException
     */
    RedPackUser getUserInfo (String sessionId) throws ParseException;

    /**
     * 分页获取红包用户列表
     * @param redPackUser
     * @param pageVO
     * @return
     */
    Page<RedPackUser> getByPage (RedPackUser redPackUser, PageVO pageVO);

    /**
     * 修改用户状态
     * @param id
     * @param status
     */
    void updateUserStatus (String id, Integer status);

    /**
     * 获取超过配置天数没有做任务的用户
     * @return
     */
    List<RedPackUser> getListByLastTime ();

    /**
     * 是否实名认证
     * @return
     */
    Integer getIsCertification ();
}
